diff --git a/astropy/nddata/mixins/ndarithmetic.py b/astropy/nddata/mixins/ndarithmetic.py
index 4153dfccb2..8ce47ac370 100644
--- a/astropy/nddata/mixins/ndarithmetic.py
+++ b/astropy/nddata/mixins/ndarithmetic.py
@@ -513,14 +513,10 @@ class NDArithmeticMixin:
             ``handle_mask`` must create (and copy) the returned mask.
         """
         # If only one mask is present we need not bother about any type checks
-        if (
-            self.mask is None and operand is not None and operand.mask is None
-        ) or handle_mask is None:
-            return None
-        elif self.mask is None and operand is not None:
+        if self.mask is None and operand is not None:
             # Make a copy so there is no reference in the result.
             return deepcopy(operand.mask)
-        elif operand is None:
+        elif operand is None or operand.mask is None:
             return deepcopy(self.mask)
         else:
             # Now lets calculate the resulting mask (operation enforces copy)
